Industrial controllers (e.g., Programmable Logic Controllers, or PLCs) are special purpose processing devices used for controlling (e.g., automated and semi-automated) industrial processes, machines, manufacturing equipment, plants, and the like. A typical controller executes a control program or routine in order to measure one or more process variables or inputs representative of the status of a controlled process and/or effectuate outputs associated with control of the process. Such inputs and outputs can be digital and/or analog, assuming a continuous range of values. A typical control routine can be created in a controller configuration environment that has various tools and interfaces whereby a developer can construct and implement a control strategy using industrial and conventional programming languages or graphical representations of control functionality. Such control routine can be downloaded from the configuration system into one or more controllers for implementation of the control strategy in controlling a process or machine.
Measured inputs received from a controlled process and outputs transmitted to the process can pass through one or more input/output (I/O) modules in a control system. Such modules can serve in the capacity of an electrical interface between the controller and the controlled process and can be located local or remote from the controller. Inputs and outputs can be recorded in an I/O memory. The input values can be asynchronously or synchronously read from the controlled process by one or more input modules and output values can be written directly to memory by a processor for subsequent communication to the process by specialized communications circuitry. An output module can interface directly with a controlled process by providing an output from memory to an actuator such as a motor, drive, valve, solenoid, and the like.
During execution of the control routine, values of the inputs and outputs exchanged with the controlled process can pass through memory. The values of inputs in memory can be asynchronously or synchronously updated from the controlled process by dedicated and/or common scanning circuitry. Such scanning circuitry can communicate with input and/or output modules over a bus on a backplane or network. The scanning circuitry can also asynchronously or synchronously write values of the outputs in memory to the controlled process. The output values from the memory can be communicated to one or more output modules for interfacing with the process. Thus, a controller processor can simply access the memory rather than needing to communicate directly with the controlled process.
In distributed control systems, controller hardware configuration can be facilitated by separating the industrial controller into a number of control elements, each of which performs a different function. Particular control modules needed for the control task can then be connected together on a common backplane within a rack and/or through a network or other communications medium. The control modules can include processors, power supplies, network communication modules, and I/O modules exchanging input and output signals directly with the controlled process. Data can be exchanged between modules using a backplane communications bus, which can be serial or parallel, or via a network. In addition to performing I/O operations based solely on network communications, smart modules exist which can execute autonomous logical or other control programs or routines. Various control modules of a distributed industrial control system can be spatially distributed along a common communication link in several locations. Certain I/O modules can thus be located proximate a portion of the controlled equipment, and away from the controller. Data can be communicated with these remote modules over a common communication link, or network, wherein all modules on the network communicate via standard communication protocols.
In a typical distributed control system, one or more I/O modules are provided for interfacing with a process. The outputs derive their control or output values in the form of a message from a master or peer device over a network or a backplane. For example, an output module can receive an output value from a processor via a communications network or a backplane communications bus. The desired output value is generally sent to the output module in a message. The output module receiving such a message will provide a corresponding output (analog or digital) to the controlled process. Input modules measure a value of a process variable and report the input values to another device over a network or backplane. The input values can be used by a processor for performing control computations.
In such systems, alerts can be generated in the controller and conveyed to particular host systems. Such alerts can be defined in the controller and raised under particular conditions. Conventional techniques utilized to notify a host system when an alert occurs include polling and messaging. With polling, the host periodically or continuously polls the controller and determines when an alert occurs at the host. Such polling consumes bandwidth and, thus, this technique can increase bandwidth consumption, which can decrease performance and increase delay times. With messaging, the controller determines when an event occurs and transmits an alert notification to the host. The technique increases complexity by requiring the controller to know host addresses ahead of time. In addition, when host configuration changes or new host systems is added, the controller has to be updated with the updated or new host configuration and addresses.